Enable use of pseudoinverse in computation of preconditioners#11
Enable use of pseudoinverse in computation of preconditioners#11gallego-posada wants to merge 13 commits intomainfrom
Conversation
…de (pip install -e .)
…g DistributedShampoo and GraftingType
|
Hi @gallego-posada! Thank you for your pull request. We require contributors to sign our Contributor License Agreement, and yours needs attention. You currently have a record in our system, but the CLA is no longer valid, and will need to be resubmitted. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks! |
|
Close this one because this is superseded by 41138ab. |
The derivations presented in the Adagrad paper provide a principled justification for the use of _pseudo_inverses in the computation of the preconditioner matrices whenever these are not full-rank.
This PR allows for the use of pseudoinverses in Shampoo and (diagonal) Adagrad-like methods (including Adagrad, Adam, RMSProp).
This PR also enables the computation of a preconditioner matrix at the very first iteration (
start_preconditioning_step=0), even in conjunction with aprecondition_frequency != 1. Previous behaviour (#10 ) led to no updates taking place for the firstprecondition_frequencysteps since the preconditioner and inverse preconditioner tensors were initialized with zeros.